package com.enjoyor.soa.traffic.util.pojo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @ClassName: TreeNode
 * @Description: 树结构实体类.
 * @author yrch 961774545@qq.com
 * @date 2016年4月19日 上午8:59:19
 *
 */
public class TreeNode implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 1152942954235628983L;

    /**
     * 
     * <p>
     * Title: 构造函数
     * </p>
     * <p>
     * Description: 实例化EasyUI Tree Node
     * </p>
     */
    public TreeNode() {
    }

    /**
     * <p>
     * Title: 构造函数
     * </p>
     * <p>
     * Description: 实例化EasyUI Tree Node
     * </p>
     * 
     * @param id
     *            节点的 id
     * @param text
     *            要显示的节点文本
     * @param state
     *            节点状态，'open' 或 'closed'
     * @param checked
     *            指示节点是否被选中
     * @param attributes
     *            给一个节点添加的自定义属性
     */
    public TreeNode(String id, String text, String state, Boolean checked, Object attributes) {
        this.id = id;
        this.text = text;
        this.state = state;
        this.checked = checked;
        this.attributes = attributes;
    }

    /**
     * 
     * @Title: Append @Description: 添加子节点 @param node 子节点 @throws
     */
    public void Append(TreeNode node) {
        this.children.add(node);
    }

    /**
     * 节点的 id
     */
    private String id;

    /**
     * 节点的 id（同id,前台字段需要，额外增加）
     */
    private String value;
    
    /**
     * 要显示的节点文本
     */
    private String text;

    /**
     * 要显示的节点文本（同text,前台字段需要，额外增加）
     * 
     */
    private String label;
    /**
     * 节点状态，'open' 或 'closed'
     */
    private String state;

    /**
     * 指示节点是否被选中
     */
    private Boolean checked;

    /**
     * 给一个节点添加的自定义属性
     */
    private Object attributes;

    /**
     * 定义节点的图标路径
     */
    private String icon;

    /**
     * 定义了一些子节点的节点数组
     */
    private List<TreeNode> children = new ArrayList<TreeNode>();

    
    
    public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}

	public String getLabel() {
		return label;
	}

	public void setLabel(String label) {
		this.label = label;
	}

	public String getId() {
        return id;
    }

    
    public void setId(String id) {
        this.id = id;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public Boolean getChecked() {
        return checked;
    }

    public void setChecked(Boolean checked) {
        this.checked = checked;
    }

    public Object getAttributes() {
        return attributes;
    }

    public void setAttributes(Object attributes) {
        this.attributes = attributes;
    }

    public List<TreeNode> getChildren() {
        return children;
    }

    public void setChildren(List<TreeNode> children) {
        this.children = children;
    }

    /**
     * @return 定义节点的图标路径
     */

    public String getIcon() {
        return icon;
    }

    /**
     * @param 定义节点的图标路径
     *            the icon to set
     */

    public void setIcon(String icon) {
        this.icon = icon;
    }
}
